﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NhibernateClassBuilder
{
    #region Mssql
    class MssqlColumns
    {
        public virtual int Id { get; set; }
        public virtual String TABLE_CATALOG { get; set; }
        public virtual String TABLE_NAME { get; set; }
        public virtual String COLUMN_NAME { get; set; }
        public virtual String DATA_TYPE { get; set; }
        public virtual object COLUMN_DEFAULT { get; set; }
        public virtual string COLLATION_NAME { get; set; }
        public virtual string IS_NULLABLE { get; set; }
        public virtual int CHARACTER_MAXIMUM_LENGTH { get; set; }
    }

    class Pk
    {
        public virtual string TABLE_NAME { get; set; }
        public virtual string CONSTRAINT_NAME { get; set; }
        public virtual string COLUMN_NAME { get; set; }
    }

    #endregion

    #region MySQL

    class MySQL_Tables
    {
        public virtual string Name { get; set; }
        public virtual string Engine { get; set; }
        public virtual string Collation { get; set; }
        public virtual string Comment { get; set; }

    }

    class MySQL_Columns
    {
        public virtual string COLUMN_NAME { get; set; }
        public virtual string COLUMN_DEFAULT { get; set; }
        public virtual string IS_NULLABLE { get; set; }
        public virtual string DATA_TYPE { get; set; }
        public virtual string CHARACTER_MAXIMUM_LENGTH { get; set; }
        public virtual string COLUMN_KEY { get; set; }
        public virtual string COLUMN_COMMENT { get; set; }
        public virtual string COLLATION_NAME { get; set; }
    }

    class MySQL_Index
    {
        public virtual string INDEX_NAME { get; set; }
        public virtual string INDEX_TYPE { get; set; }
    }

    #endregion

    #region SQLite

    public class SQLiteTables
    {
        public virtual int rootpage { get; set; }
        public virtual string type { get; set; }
        public virtual string name { get; set; }
        public virtual string tbl_name { get; set; }
        public virtual string sql { get; set; }
    }

    public class SQLiteColumns
    {
        public virtual int cid { get; set; }
        public virtual string name { get; set; }
        public virtual string type { get; set; }
        public virtual bool notnull { get; set; }
        public virtual bool pk { get; set; }
    }

    #endregion
}
